Jelly Forestで、iOS App StoreやGoogle Play StoreのIAP(アプリ内課金)でNFTを購入できるようにした方法と、同様の仕組みを自分のゲームに導入する方法もご紹介します。
git clone https://github.com/0xsequence-demos/cloudflare-worker-sequence-relayer.git
を実行し、続いて cd cloudflare-worker-sequence-relayer
git checkout permissionedMinter
pnpm install
で依存関係をインストールしますwrangler.toml
を開きます
name
の文字列を変更してサーバー名を設定しますPKEY
に設定します。CONTRACT_ADDRESS
を設定します。PROJECT_ACCESS_KEY
を設定します。これは、先ほどBuilder ConsoleでSequenceConfig
スクリプタブルオブジェクトをセットアップした際に取得した本番用APIキーです。CHAIN_HANDLE
を設定します。これが何かわからない場合は、Builder ConsoleのNode Gatewayページで各ネットワークのCHAIN_HANDLE
を確認できます。pnpm dev
- これでサーバーがローカルにデプロイされます。どのlocalhostでデプロイされたかはコマンドラインに表示されます。curl http://localhost:8787
- 表示されたlocalhostに置き換えてください。これでサーバーにリクエストを送ります。Contracts
から該当するコントラクトを探し、クリックして開きます。Write Contract
をクリックします。grantRole
を展開します。role
には0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
を入力します。これはMINTER_ROLE
のKeccak-256ハッシュ値です。account
にはミンターのウォレットアドレスを貼り付けます。wrangler deploy
- これでCloudflare Workerにコードがデプロイされ、ミント用のURLが発行されます。proof
はミントリクエストを送るクライアント側で生成されます。Unity SDKでは、MintingRequestProverによって実装されています。
IStoreListener
の ProcessPurchase
メソッド内で、ミント処理を開始します。Jelly Forest では、UnityIAP と PremiumItem のスクリプトで実装されています。
ペイロードについては、PremiumItem
の実装で PermissionedMintTransaction
を TransactionQueuer
に追加しているのが分かります。
_permissionedMinterTransactionQueuer
は PermissionedMinterTransactionQueuer
です。
この処理により、次の形式のペイロードが送信されます。